The use of personal computers has expanded over the years, with a vast and growing population of people using personal computers daily. Within that population are people who rely on software to perform functions ranging from work-related activities such as drafting memos to personal activities such as shopping on-line. With such a wide variety of tasks performed by computer programs, errors in these programs are common. Most personal computer users have experienced program errors: for example, sometimes a Graphical User Interface (GUI) action that was expected to respond instantly takes much longer to respond than anticipated, appearing to drive the application into a coma. While the application will typically respond after some delay, the application does not respond to user actions during this time. Such responsiveness issues generally occur in everyday productivity tools such as Web browsers, word processors, and other desktop applications; however, similar issues are known to occur with server applications as well. Such program errors can lead to loss in productivity and frustration.
Accordingly, there is a need to improve the responsiveness of software by analyzing and detecting program errors.